package io.adrainty.bolee.trade.handler;

import io.adrainty.bolee.trade.models.entity.TradeEntity;
import io.adrainty.bolee.trade.models.valobj.PayChannelEnum;

/**
 * @author AdRainty
 * @version V1.0.0
 * @since 2025/8/31 下午11:22
 */
public interface IPayHandler {

    /**
     * 手机网页支付
     * @param tradeVO 交易信息
     * @return TradeEntity
     */
    TradeEntity wapTrade(TradeEntity tradeVO);

    /**
     * H5签约
     * @param tradeVO 订单信息
     * @return TradeEntity
     */
    TradeEntity h5SignContract(TradeEntity tradeVO);

    /**
     * 关闭交易
     * @param tradeVO 订单信息
     * @return TradeEntity
     */
    TradeEntity closeTrade(TradeEntity tradeVO);

    /**
     * 支持的支付渠道
     * @return PayChannelEnum
     */
    PayChannelEnum supportPayChannel();

}
